package de.homer.persistence.adapter;

import de.homer.adapter.domain.PluginMetaInformation;
import de.homer.persistence.Repository;

/**
 * This repository keeps the {@link PluginMetaInformation} for all the plugins
 * that are known in the system. Those plugins are not configured and running
 * but available for that.
 * 
 * @author André Stannek
 * 
 */
public interface PluginRepository extends Repository<PluginMetaInformation> {

	/**
	 * Searches a plugin by its className as returned by
	 * {@link PluginMetaInformation#getPluginClassName()}.
	 * 
	 * @param className
	 *            the fully qualified classname of the plugin to find
	 * @return the {@link PluginMetaInformation} describing the plugin belonging
	 *         to the given className or null if non is found.
	 */
	PluginMetaInformation find(String className);
}
